package dayPractice;

import java.util.Scanner;

/**
 * 十三号星期五真的很不常见吗？
 * <p>
 * 每个月的十三号是星期五的频率是否比一周中的其他几天低？
 * <p>
 * 请编写一个程序，计算 N 年内每个月的 13 号是星期日，星期一，星期二，星期三，星期四，星期五和星期六的频率。
 * <p>
 * 测试的时间段将会开始于 1900 年 1 月 1 日，结束于 1900+N−1 年 12 月 31日。
 * <p>
 * 一些有助于你解题的额外信息：
 * <p>
 * 1900 年 1 月 1 日是星期一。
 * 在一年中，4 月、6 月、9 月、11 月每个月 30 天，2 月平年 28 天，闰年 29 天，其他月份每个月31天。
 * 公历年份是 4 的倍数且不是 100 的倍数的年份为闰年，例如 1992 年是闰年，1990 年不是闰年。
 * 公历年份是整百数并且是 400 的倍数的也是闰年，例如1700年，1800年，1900年，2100年不是闰年，2000年是闰年。
 * 输入格式
 * 共一行，包含一个整数 N。
 * <p>
 * 输出格式
 * 共一行，包含七个整数，整数之间用一个空格隔开，依次表示星期六，星期日，星期一，星期二，星期三，星期四，星期五在十三号出现的次数。
 *
 * @author Summerday
 */
public class Main1341模拟 {

    static int N;
    static int[] months = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    static int[] res = new int[7];
    static int wd = -1;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();

        for (int y = 1900; y <= 1900 + N - 1; y++) {
            months[1] = isRun(y) ? 29 : 28;
            // System.out.println("year : " + y + "month : " + Arrays.toString(months));
            for (int m = 0; m < 12; m++) {
                int d = months[m];
                for (int i = 1; i <= d; i++) {
                    wd = (wd + 1) % 7;
                    // System.out.println("i -> " + i + " d ->" + d + " wd -> " + wd);
                    if (i == 13) {
                        res[wd]++;
                    }
                }
            }
        }
        // 啊注意输出啊  第一个是 周六
        for (int i = 0; i < 7; i ++) System.out.print(res[(i + 5) % 7] + " ");
    }

    static boolean isRun(int year) {
        return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
    }
}
